// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima).
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/*!
 * @file AlarmInfo_t.h
 * This header file contains the declaration of the described types in the IDL file.
 *
 * This file was generated by the tool fastddsgen.
 */

#ifndef _FAST_DDS_GENERATED_ALARMINFO_T_H_
#define _FAST_DDS_GENERATED_ALARMINFO_T_H_

#include <array>
#include <bitset>
#include <cstdint>
#include <map>
#include <string>
#include <vector>

#include <fastcdr/cdr/fixed_size_string.hpp>
#include <fastcdr/xcdr/external.hpp>
#include <fastcdr/xcdr/optional.hpp>



#if defined(_WIN32)
#if defined(EPROSIMA_USER_DLL_EXPORT)
#define eProsima_user_DllExport __declspec( dllexport )
#else
#define eProsima_user_DllExport
#endif  // EPROSIMA_USER_DLL_EXPORT
#else
#define eProsima_user_DllExport
#endif  // _WIN32

#if defined(_WIN32)
#if defined(EPROSIMA_USER_DLL_EXPORT)
#if defined(ALARMINFO_T_SOURCE)
#define ALARMINFO_T_DllAPI __declspec( dllexport )
#else
#define ALARMINFO_T_DllAPI __declspec( dllimport )
#endif // ALARMINFO_T_SOURCE
#else
#define ALARMINFO_T_DllAPI
#endif  // EPROSIMA_USER_DLL_EXPORT
#else
#define ALARMINFO_T_DllAPI
#endif // _WIN32

namespace eprosima {
namespace fastcdr {
class Cdr;
class CdrSizeCalculator;
} // namespace fastcdr
} // namespace eprosima





/*!
 * @brief This class represents the structure AlarmInfo_t defined by the user in the IDL file.
 * @ingroup AlarmInfo_t
 */
class AlarmInfo_t
{
public:

    /*!
     * @brief Default constructor.
     */
    eProsima_user_DllExport AlarmInfo_t();

    /*!
     * @brief Default destructor.
     */
    eProsima_user_DllExport ~AlarmInfo_t();

    /*!
     * @brief Copy constructor.
     * @param x Reference to the object AlarmInfo_t that will be copied.
     */
    eProsima_user_DllExport AlarmInfo_t(
            const AlarmInfo_t& x);

    /*!
     * @brief Move constructor.
     * @param x Reference to the object AlarmInfo_t that will be copied.
     */
    eProsima_user_DllExport AlarmInfo_t(
            AlarmInfo_t&& x) noexcept;

    /*!
     * @brief Copy assignment.
     * @param x Reference to the object AlarmInfo_t that will be copied.
     */
    eProsima_user_DllExport AlarmInfo_t& operator =(
            const AlarmInfo_t& x);

    /*!
     * @brief Move assignment.
     * @param x Reference to the object AlarmInfo_t that will be copied.
     */
    eProsima_user_DllExport AlarmInfo_t& operator =(
            AlarmInfo_t&& x) noexcept;

    /*!
     * @brief Comparison operator.
     * @param x AlarmInfo_t object to compare.
     */
    eProsima_user_DllExport bool operator ==(
            const AlarmInfo_t& x) const;

    /*!
     * @brief Comparison operator.
     * @param x AlarmInfo_t object to compare.
     */
    eProsima_user_DllExport bool operator !=(
            const AlarmInfo_t& x) const;

    /*!
     * @brief This function sets a value in member m_PEDESTRIAN_INVASION_CLEARANCES_ALARM_INFO
     * @param _m_PEDESTRIAN_INVASION_CLEARANCES_ALARM_INFO New value for member m_PEDESTRIAN_INVASION_CLEARANCES_ALARM_INFO
     */
    eProsima_user_DllExport void m_PEDESTRIAN_INVASION_CLEARANCES_ALARM_INFO(
            bool _m_PEDESTRIAN_INVASION_CLEARANCES_ALARM_INFO);

    /*!
     * @brief This function returns the value of member m_PEDESTRIAN_INVASION_CLEARANCES_ALARM_INFO
     * @return Value of member m_PEDESTRIAN_INVASION_CLEARANCES_ALARM_INFO
     */
    eProsima_user_DllExport bool m_PEDESTRIAN_INVASION_CLEARANCES_ALARM_INFO() const;

    /*!
     * @brief This function returns a reference to member m_PEDESTRIAN_INVASION_CLEARANCES_ALARM_INFO
     * @return Reference to member m_PEDESTRIAN_INVASION_CLEARANCES_ALARM_INFO
     */
    eProsima_user_DllExport bool& m_PEDESTRIAN_INVASION_CLEARANCES_ALARM_INFO();


    /*!
     * @brief This function sets a value in member m_TRAIN_INVASION_CLEARANCES_ALARM_INFO
     * @param _m_TRAIN_INVASION_CLEARANCES_ALARM_INFO New value for member m_TRAIN_INVASION_CLEARANCES_ALARM_INFO
     */
    eProsima_user_DllExport void m_TRAIN_INVASION_CLEARANCES_ALARM_INFO(
            bool _m_TRAIN_INVASION_CLEARANCES_ALARM_INFO);

    /*!
     * @brief This function returns the value of member m_TRAIN_INVASION_CLEARANCES_ALARM_INFO
     * @return Value of member m_TRAIN_INVASION_CLEARANCES_ALARM_INFO
     */
    eProsima_user_DllExport bool m_TRAIN_INVASION_CLEARANCES_ALARM_INFO() const;

    /*!
     * @brief This function returns a reference to member m_TRAIN_INVASION_CLEARANCES_ALARM_INFO
     * @return Reference to member m_TRAIN_INVASION_CLEARANCES_ALARM_INFO
     */
    eProsima_user_DllExport bool& m_TRAIN_INVASION_CLEARANCES_ALARM_INFO();


    /*!
     * @brief This function sets a value in member m_OTHER_OBSTACLE_INVASION_CLEARANCES_ALARM_INFO
     * @param _m_OTHER_OBSTACLE_INVASION_CLEARANCES_ALARM_INFO New value for member m_OTHER_OBSTACLE_INVASION_CLEARANCES_ALARM_INFO
     */
    eProsima_user_DllExport void m_OTHER_OBSTACLE_INVASION_CLEARANCES_ALARM_INFO(
            bool _m_OTHER_OBSTACLE_INVASION_CLEARANCES_ALARM_INFO);

    /*!
     * @brief This function returns the value of member m_OTHER_OBSTACLE_INVASION_CLEARANCES_ALARM_INFO
     * @return Value of member m_OTHER_OBSTACLE_INVASION_CLEARANCES_ALARM_INFO
     */
    eProsima_user_DllExport bool m_OTHER_OBSTACLE_INVASION_CLEARANCES_ALARM_INFO() const;

    /*!
     * @brief This function returns a reference to member m_OTHER_OBSTACLE_INVASION_CLEARANCES_ALARM_INFO
     * @return Reference to member m_OTHER_OBSTACLE_INVASION_CLEARANCES_ALARM_INFO
     */
    eProsima_user_DllExport bool& m_OTHER_OBSTACLE_INVASION_CLEARANCES_ALARM_INFO();


    /*!
     * @brief This function sets a value in member m_INTRUSION_OBJECT_DISTANCE_CALCULATE_FAILED_ALARM_INFO
     * @param _m_INTRUSION_OBJECT_DISTANCE_CALCULATE_FAILED_ALARM_INFO New value for member m_INTRUSION_OBJECT_DISTANCE_CALCULATE_FAILED_ALARM_INFO
     */
    eProsima_user_DllExport void m_INTRUSION_OBJECT_DISTANCE_CALCULATE_FAILED_ALARM_INFO(
            bool _m_INTRUSION_OBJECT_DISTANCE_CALCULATE_FAILED_ALARM_INFO);

    /*!
     * @brief This function returns the value of member m_INTRUSION_OBJECT_DISTANCE_CALCULATE_FAILED_ALARM_INFO
     * @return Value of member m_INTRUSION_OBJECT_DISTANCE_CALCULATE_FAILED_ALARM_INFO
     */
    eProsima_user_DllExport bool m_INTRUSION_OBJECT_DISTANCE_CALCULATE_FAILED_ALARM_INFO() const;

    /*!
     * @brief This function returns a reference to member m_INTRUSION_OBJECT_DISTANCE_CALCULATE_FAILED_ALARM_INFO
     * @return Reference to member m_INTRUSION_OBJECT_DISTANCE_CALCULATE_FAILED_ALARM_INFO
     */
    eProsima_user_DllExport bool& m_INTRUSION_OBJECT_DISTANCE_CALCULATE_FAILED_ALARM_INFO();


    /*!
     * @brief This function sets a value in member m_INTRUSION_OBJECT_VELOCITY_CALCULATE_FAILED_ALARM_INFO
     * @param _m_INTRUSION_OBJECT_VELOCITY_CALCULATE_FAILED_ALARM_INFO New value for member m_INTRUSION_OBJECT_VELOCITY_CALCULATE_FAILED_ALARM_INFO
     */
    eProsima_user_DllExport void m_INTRUSION_OBJECT_VELOCITY_CALCULATE_FAILED_ALARM_INFO(
            bool _m_INTRUSION_OBJECT_VELOCITY_CALCULATE_FAILED_ALARM_INFO);

    /*!
     * @brief This function returns the value of member m_INTRUSION_OBJECT_VELOCITY_CALCULATE_FAILED_ALARM_INFO
     * @return Value of member m_INTRUSION_OBJECT_VELOCITY_CALCULATE_FAILED_ALARM_INFO
     */
    eProsima_user_DllExport bool m_INTRUSION_OBJECT_VELOCITY_CALCULATE_FAILED_ALARM_INFO() const;

    /*!
     * @brief This function returns a reference to member m_INTRUSION_OBJECT_VELOCITY_CALCULATE_FAILED_ALARM_INFO
     * @return Reference to member m_INTRUSION_OBJECT_VELOCITY_CALCULATE_FAILED_ALARM_INFO
     */
    eProsima_user_DllExport bool& m_INTRUSION_OBJECT_VELOCITY_CALCULATE_FAILED_ALARM_INFO();


    /*!
     * @brief This function sets a value in member m_CLEARANCES_AREA_LENGTH_TOO_SHORT_ALARM_INFO
     * @param _m_CLEARANCES_AREA_LENGTH_TOO_SHORT_ALARM_INFO New value for member m_CLEARANCES_AREA_LENGTH_TOO_SHORT_ALARM_INFO
     */
    eProsima_user_DllExport void m_CLEARANCES_AREA_LENGTH_TOO_SHORT_ALARM_INFO(
            bool _m_CLEARANCES_AREA_LENGTH_TOO_SHORT_ALARM_INFO);

    /*!
     * @brief This function returns the value of member m_CLEARANCES_AREA_LENGTH_TOO_SHORT_ALARM_INFO
     * @return Value of member m_CLEARANCES_AREA_LENGTH_TOO_SHORT_ALARM_INFO
     */
    eProsima_user_DllExport bool m_CLEARANCES_AREA_LENGTH_TOO_SHORT_ALARM_INFO() const;

    /*!
     * @brief This function returns a reference to member m_CLEARANCES_AREA_LENGTH_TOO_SHORT_ALARM_INFO
     * @return Reference to member m_CLEARANCES_AREA_LENGTH_TOO_SHORT_ALARM_INFO
     */
    eProsima_user_DllExport bool& m_CLEARANCES_AREA_LENGTH_TOO_SHORT_ALARM_INFO();


    /*!
     * @brief This function sets a value in member m_CLEARANCES_AREA_RECOGNITION_FAILED_ALARM_INFO
     * @param _m_CLEARANCES_AREA_RECOGNITION_FAILED_ALARM_INFO New value for member m_CLEARANCES_AREA_RECOGNITION_FAILED_ALARM_INFO
     */
    eProsima_user_DllExport void m_CLEARANCES_AREA_RECOGNITION_FAILED_ALARM_INFO(
            bool _m_CLEARANCES_AREA_RECOGNITION_FAILED_ALARM_INFO);

    /*!
     * @brief This function returns the value of member m_CLEARANCES_AREA_RECOGNITION_FAILED_ALARM_INFO
     * @return Value of member m_CLEARANCES_AREA_RECOGNITION_FAILED_ALARM_INFO
     */
    eProsima_user_DllExport bool m_CLEARANCES_AREA_RECOGNITION_FAILED_ALARM_INFO() const;

    /*!
     * @brief This function returns a reference to member m_CLEARANCES_AREA_RECOGNITION_FAILED_ALARM_INFO
     * @return Reference to member m_CLEARANCES_AREA_RECOGNITION_FAILED_ALARM_INFO
     */
    eProsima_user_DllExport bool& m_CLEARANCES_AREA_RECOGNITION_FAILED_ALARM_INFO();


    /*!
     * @brief This function sets a value in member m_LIDAR_SENSOR_FAULT_ALARM_INFO
     * @param _m_LIDAR_SENSOR_FAULT_ALARM_INFO New value for member m_LIDAR_SENSOR_FAULT_ALARM_INFO
     */
    eProsima_user_DllExport void m_LIDAR_SENSOR_FAULT_ALARM_INFO(
            bool _m_LIDAR_SENSOR_FAULT_ALARM_INFO);

    /*!
     * @brief This function returns the value of member m_LIDAR_SENSOR_FAULT_ALARM_INFO
     * @return Value of member m_LIDAR_SENSOR_FAULT_ALARM_INFO
     */
    eProsima_user_DllExport bool m_LIDAR_SENSOR_FAULT_ALARM_INFO() const;

    /*!
     * @brief This function returns a reference to member m_LIDAR_SENSOR_FAULT_ALARM_INFO
     * @return Reference to member m_LIDAR_SENSOR_FAULT_ALARM_INFO
     */
    eProsima_user_DllExport bool& m_LIDAR_SENSOR_FAULT_ALARM_INFO();


    /*!
     * @brief This function sets a value in member m_LONG_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO
     * @param _m_LONG_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO New value for member m_LONG_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO
     */
    eProsima_user_DllExport void m_LONG_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO(
            bool _m_LONG_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO);

    /*!
     * @brief This function returns the value of member m_LONG_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO
     * @return Value of member m_LONG_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO
     */
    eProsima_user_DllExport bool m_LONG_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO() const;

    /*!
     * @brief This function returns a reference to member m_LONG_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO
     * @return Reference to member m_LONG_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO
     */
    eProsima_user_DllExport bool& m_LONG_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO();


    /*!
     * @brief This function sets a value in member m_SHORT_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO
     * @param _m_SHORT_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO New value for member m_SHORT_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO
     */
    eProsima_user_DllExport void m_SHORT_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO(
            bool _m_SHORT_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO);

    /*!
     * @brief This function returns the value of member m_SHORT_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO
     * @return Value of member m_SHORT_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO
     */
    eProsima_user_DllExport bool m_SHORT_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO() const;

    /*!
     * @brief This function returns a reference to member m_SHORT_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO
     * @return Reference to member m_SHORT_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO
     */
    eProsima_user_DllExport bool& m_SHORT_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO();


    /*!
     * @brief This function sets a value in member m_MILLIMETERM_WAVE_RADAR_SENSOR_FAULT_ALARM_INFO
     * @param _m_MILLIMETERM_WAVE_RADAR_SENSOR_FAULT_ALARM_INFO New value for member m_MILLIMETERM_WAVE_RADAR_SENSOR_FAULT_ALARM_INFO
     */
    eProsima_user_DllExport void m_MILLIMETERM_WAVE_RADAR_SENSOR_FAULT_ALARM_INFO(
            bool _m_MILLIMETERM_WAVE_RADAR_SENSOR_FAULT_ALARM_INFO);

    /*!
     * @brief This function returns the value of member m_MILLIMETERM_WAVE_RADAR_SENSOR_FAULT_ALARM_INFO
     * @return Value of member m_MILLIMETERM_WAVE_RADAR_SENSOR_FAULT_ALARM_INFO
     */
    eProsima_user_DllExport bool m_MILLIMETERM_WAVE_RADAR_SENSOR_FAULT_ALARM_INFO() const;

    /*!
     * @brief This function returns a reference to member m_MILLIMETERM_WAVE_RADAR_SENSOR_FAULT_ALARM_INFO
     * @return Reference to member m_MILLIMETERM_WAVE_RADAR_SENSOR_FAULT_ALARM_INFO
     */
    eProsima_user_DllExport bool& m_MILLIMETERM_WAVE_RADAR_SENSOR_FAULT_ALARM_INFO();


    /*!
     * @brief This function sets a value in member m_ATP_COMMUNICATION_TIMEOUT_ALARM_INFO
     * @param _m_ATP_COMMUNICATION_TIMEOUT_ALARM_INFO New value for member m_ATP_COMMUNICATION_TIMEOUT_ALARM_INFO
     */
    eProsima_user_DllExport void m_ATP_COMMUNICATION_TIMEOUT_ALARM_INFO(
            bool _m_ATP_COMMUNICATION_TIMEOUT_ALARM_INFO);

    /*!
     * @brief This function returns the value of member m_ATP_COMMUNICATION_TIMEOUT_ALARM_INFO
     * @return Value of member m_ATP_COMMUNICATION_TIMEOUT_ALARM_INFO
     */
    eProsima_user_DllExport bool m_ATP_COMMUNICATION_TIMEOUT_ALARM_INFO() const;

    /*!
     * @brief This function returns a reference to member m_ATP_COMMUNICATION_TIMEOUT_ALARM_INFO
     * @return Reference to member m_ATP_COMMUNICATION_TIMEOUT_ALARM_INFO
     */
    eProsima_user_DllExport bool& m_ATP_COMMUNICATION_TIMEOUT_ALARM_INFO();


    /*!
     * @brief This function sets a value in member m_TRAIN_INTERFACE_COMMUNICATION_TIMEOUT_ALARM_INFO
     * @param _m_TRAIN_INTERFACE_COMMUNICATION_TIMEOUT_ALARM_INFO New value for member m_TRAIN_INTERFACE_COMMUNICATION_TIMEOUT_ALARM_INFO
     */
    eProsima_user_DllExport void m_TRAIN_INTERFACE_COMMUNICATION_TIMEOUT_ALARM_INFO(
            bool _m_TRAIN_INTERFACE_COMMUNICATION_TIMEOUT_ALARM_INFO);

    /*!
     * @brief This function returns the value of member m_TRAIN_INTERFACE_COMMUNICATION_TIMEOUT_ALARM_INFO
     * @return Value of member m_TRAIN_INTERFACE_COMMUNICATION_TIMEOUT_ALARM_INFO
     */
    eProsima_user_DllExport bool m_TRAIN_INTERFACE_COMMUNICATION_TIMEOUT_ALARM_INFO() const;

    /*!
     * @brief This function returns a reference to member m_TRAIN_INTERFACE_COMMUNICATION_TIMEOUT_ALARM_INFO
     * @return Reference to member m_TRAIN_INTERFACE_COMMUNICATION_TIMEOUT_ALARM_INFO
     */
    eProsima_user_DllExport bool& m_TRAIN_INTERFACE_COMMUNICATION_TIMEOUT_ALARM_INFO();


    /*!
     * @brief This function sets a value in member m_RESERVE
     * @param _m_RESERVE New value for member m_RESERVE
     */
    eProsima_user_DllExport void m_RESERVE(
            bool _m_RESERVE);

    /*!
     * @brief This function returns the value of member m_RESERVE
     * @return Value of member m_RESERVE
     */
    eProsima_user_DllExport bool m_RESERVE() const;

    /*!
     * @brief This function returns a reference to member m_RESERVE
     * @return Reference to member m_RESERVE
     */
    eProsima_user_DllExport bool& m_RESERVE();

private:

    bool m_m_PEDESTRIAN_INVASION_CLEARANCES_ALARM_INFO{false};
    bool m_m_TRAIN_INVASION_CLEARANCES_ALARM_INFO{false};
    bool m_m_OTHER_OBSTACLE_INVASION_CLEARANCES_ALARM_INFO{false};
    bool m_m_INTRUSION_OBJECT_DISTANCE_CALCULATE_FAILED_ALARM_INFO{false};
    bool m_m_INTRUSION_OBJECT_VELOCITY_CALCULATE_FAILED_ALARM_INFO{false};
    bool m_m_CLEARANCES_AREA_LENGTH_TOO_SHORT_ALARM_INFO{false};
    bool m_m_CLEARANCES_AREA_RECOGNITION_FAILED_ALARM_INFO{false};
    bool m_m_LIDAR_SENSOR_FAULT_ALARM_INFO{false};
    bool m_m_LONG_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO{false};
    bool m_m_SHORT_FOCUS_CAMERA_SENSOR_FAULT_ALARM_INFO{false};
    bool m_m_MILLIMETERM_WAVE_RADAR_SENSOR_FAULT_ALARM_INFO{false};
    bool m_m_ATP_COMMUNICATION_TIMEOUT_ALARM_INFO{false};
    bool m_m_TRAIN_INTERFACE_COMMUNICATION_TIMEOUT_ALARM_INFO{false};
    bool m_m_RESERVE{false};

};

#endif // _FAST_DDS_GENERATED_ALARMINFO_T_H_



